package com.dc.refactoring._6_处理概括关系._6_ExtractSubclass.step5;

/**
 * Description: 用来决定当地修车厂的工作报价
 *
 * unitPrice 字段只有 按零件收费时才会用到，因此可以再次提炼出一个子类，并将 JobItem 声明为 抽象
 *
 * @author: gdc
 * @date: 2020/12/12
 * @version 1.0
 */
public abstract class JobItem {

    /**
     * 数量
     */
    private int quantity;
    /**
     * 员工
     */
    protected Employee employee;

    public JobItem(int quantity) {
        this.quantity = quantity;
    }

    /**
     * 获取收费金额
     */
    public int getTotalPrice(){
        return getUnitPrice() * quantity;
    }

    /**
     * 获取报价，将当前函数设置为抽象函数，供子类实现
     */
    public abstract int getUnitPrice();

    public int getQuantity(){
        return quantity;
    }

}
